package main

import "fmt"

//channel的关闭
func main() {
	c := make(chan int) //如果不初始化,无论收发都会阻塞 var c chan int;

	go func() {
		for i := 0; i < 5; i++ {
			c <- i
		}
		//close可以关闭一个channel
		close(c) //如果不关闭 主线程在取完channel后会没有数据可以获取 会发生阻塞

	}()
	for {
		if data, ok := <-c; ok {
			fmt.Println(data)
		} else {
			break
		}
	}

	fmt.Println("Main Finished...")

}
